Memory built-in self-test (MBIST) is an important tool for testing memories (including finding/diagnosing and repairing defects within those memories). As more memory is integrated into chips, thorough BIST test and repair is a requirement in order to ensure reasonable product quality/reliability levels. To improve MBIST quality oftentimes more test patterns are run as part of a manufacturing test. Total test time can take many millions of cycles when all necessary test patterns are included.
During the manufacturing test, a plurality of memory is tested using a single BIST engine. BIST engines may run into two different modes of operations: repair mode and pass-fail mode. Repair mode repairs the plurality of memory by swapping the failed locations with the redundant elements and the redundancy solution gets enabled at the end of the repair mode. Pass-fail mode qualifies the plurality of memory after the redundancies are enabled.
Each kind of memory has certain set of patterns, with each pattern targeted to find unique faults present in the memory during the manufacturing test. Typically, all of the patterns are executed twice; once during the repair mode and then once during the pass-fail mode. In the repair mode, if a fail is detected during the execution of a pattern, the fail information is collected by the repair logic and if the fail is unique, the failing information is passed to the MBIST. If more fails are detected in any of the subsequent patterns, all of the unique fail information is sent to the BIST engine. At the end of the repair mode, the BIST engine has all of the information regarding which patterns failed, and specifically which patterns exhibited a unique fail.
In view of the above, test time can be saved by determining which patterns had unique fails in the repair mode and then programming the BIST to only run those patterns in the pass-fail mode, instead of running all patterns in the pass-fail mode. Alternatively, a bit-fail mapping procedure could be used to understand which patterns failed uniquely, but this would require much more test time. Specifically, a bit-map failing of the failing memory can occur by rotating all of the failing information and logging this data to a tester. The tester could then analyze the data, and program all the MBIST's pattern registers present in the chip. Logging fail data to the tester is intensively time consuming and it would take a prohibitively large amount of tester time to accomplish this task.